/**
 * 1、算术运算符: + 、- 、* 、/ 、% 、++ 、-- 、-(负号)
 * 2、所有的浮点数都是不精确的
 * 3、Math.floor() 函数可以将浮点数的小数部分舍弃只剩下整数部分
 * 4、Math.round() 函数可以将浮点数四舍五入到整数部分
 */

let x = 100 ;
let y = x / 2 ;
console.log( y );

// 与 Java 语言中的整除求商不同，这里是数学中的除法
let z = x / 3 ;
console.log( z );

let m = x % 2 ; // 模运算: 整除求余数
console.log( m );

let n = x % 3 ; // 模运算: 整除求余数
console.log( n );

let p = 6.66 % 3.14 ; // 模运算: "整除"求余数
console.log( p );

let q = 6.66 % 3 ;
console.log( q );

// 如果需要整除求商(不要小数部分)，则可以借助于 Math.floor 函数来将小数部分舍弃
let k = 101 / 3 ;
console.log( k , typeof(k) );

let h = Math.floor( k ); // 舍弃小数部分，不是四舍五入
console.log( h );

let w = Math.round( k ); // 四舍五入到整数部分
console.log( w );
console.log( '' );
/** - - - - - - - - - - - - - - - - - - - - - */

let first = 100 ;
console.log( first , typeof(first) ); // 100 number

first++ ;
console.log( first , typeof(first) ); // 101 number
// 若 ++ 或 -- 运算符 在变量 之后，则先执行 其它操作(比如输出) 然后再执行 ++ 或 --
console.log( first++ , typeof(first) ); // 101 number
console.log( first , typeof(first) ); // 102 number
console.log( '' );

let second = 100 ;
console.log( second , typeof(second) ); // 100 number
--second ;
console.log( second , typeof(second) ); // 99 number
// 若 ++ 或 -- 运算符 在变量 之前，则 先执行 ++ 或 -- 然后再执行其它操作 (比如 输出、赋值 等)
console.log( --second , typeof(second) ); // 98 number
console.log( '' );

let third = 1000 ;
// 先将 third 变量中的值赋值给 fourth 变量，然后再为 third 执行++操作
let fourth = third++ ; 
console.log( fourth , third ); // 1000 1001

/*
let fifth = 2000 ;
fifth = fifth++ ;
console.log( fifth );
*/